我在运行时按C#
CodeDOM
创建了一些类。然后我在我的项目中包含我CodeDOM
创建的cs文件,如下所示:
var p = new Microsoft.Build.Evaluation.Project(@"D:\imanSal\SmlpeApp\SmlpeApp\SmlpeApp.csproj");
p.AddItem("Compile", outputFileName + this.ClassName + ".cs");
p.Save();
p.Build();
然后我发现检测到文件修改警告,因为我的项目已在环境外修改,因此我必须重新加载它。 如果我想在运行时以编程方式重新加载我的项目,我该怎么办?对此最好的解决方案是什么?
答案 0 :(得分:1)
您可以在项目文件中指定其他文件以进行编译。例如,将动态创建文件放到Lib文件夹中,然后您可以将此代码添加到项目文件(<Compile Include="Lib\*.cs" />),
中,然后在构建期间包含这些文件。
<ItemGroup>
<Compile Include="Class1.cs" />
<Compile Include="Lib\*.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
检测到的文件修改waring是Visual Studio的功能,因此无法通过MSBuild以编程方式加载项目。