C# Microsoft.Build.Evaluation.Project以编程方式将resx文件添加到.net核心项目文件(csproj)
我有一个asp.net核心项目文件(csproj)。我试图以编程方式将一些资源文件(resx)添加到项目中。要添加资源,我正在使用nugget Microsoft.Build 16.3.0 我试图修改项目文件的应用程序是.NET4.7 它工作得几乎完美,但有一个问题,我无法解决 在xml中以编程方式插入新项目项时,它具有Include属性(Compile Include=…)。当VisualStudio添加它时,它具有Update属性(Compile Update=…) 当我试图编译项目时,错误是:C# Microsoft.Build.Evaluation.Project以编程方式将resx文件添加到.net核心项目文件(csproj),c#,.net,C#,.net,我有一个asp.net核心项目文件(csproj)。我试图以编程方式将一些资源文件(resx)添加到项目中。要添加资源,我正在使用nugget Microsoft.Build 16.3.0 我试图修改项目文件的应用程序是.NET4.7 它工作得几乎完美,但有一个问题,我无法解决 在xml中以编程方式插入新项目项时,它具有Include属性(Compile Include=…)。当VisualStudio添加它时,它具有Update属性(Compile Update=…) 当我试图编译项目时,错误
包含重复的“编译”项。默认情况下,.NET SDK包含项目目录中的“编译”项。如果要在项目文件中显式包含这些项,可以从项目文件中删除它们,也可以将“EnableDefaultCompileItems”属性设置为“false”。有关详细信息,请参阅 要添加到项目的代码如下所示:
project=新项目(CsProjectFullFileName);
List metadataList=新列表();
添加(新的KeyValuePair(“子类型”、“设计器”);
添加(新的KeyValuePair(“LastGenOutput”,Path.GetFileName(designerFullFileName));
添加(新的KeyValuePair(“生成器”、“ResXFileCodeGenerator”);
AddItem(“EmbeddedResource”,relativeResxName,metadataList);
string relativeDesignerName=HelperMethodItemJobMasken.GetRelativePath(designerFullFileName,CsProjectPath);
metadataList=新列表();
添加(新的KeyValuePair(“DesignTime”、“True”);
添加(新的KeyValuePair(“AutoGen”、“True”);
添加(新的KeyValuePair(“DependentUpon”,Path.GetFileName(resxFullFileName));
AddItem(“编译”,相对设计名称,元数据列表);
项目文件如下所示:
“PersonalienSqlQueries.resx”是由Visual Studio添加的
“Personalien2SqlRes.resx”是以编程方式添加的
netcoreapp2.2
窗户
...
设计师
Personalien2SqlRes.Designer.cs
ResXFileCodeGenerator
PersonalienSqlQueries.resx
真的
真的
真的
真的
Personalien2SqlRes.resx
设计师
PersonalienSqlQueries.Designer.cs
ResXFileCodeGenerator
....
....