2017-10-05 45 views
1

RESX文件,如果我從VS2017添加一個新的resx文件到我的屬性文件夾在我的新dotnetstandard 2.0 SDK的項目,我看到如何添加水珠爲新SDK的csproj文件

<Project Sdk="Microsoft.NET.Sdk"> 

    <PropertyGroup> 
    <TargetFramework>netstandard2.0</TargetFramework> 
    </PropertyGroup> 

    <ItemGroup> 
    <EmbeddedResource Remove="Properties\foo.resx" /> 
    </ItemGroup> 

    <ItemGroup> 
    <Compile Update="Properties\MyWords.Designer.cs"> 
     <DesignTime>True</DesignTime> 
     <AutoGen>True</AutoGen> 
     <DependentUpon>MyWords.resx</DependentUpon> 
    </Compile> 
    </ItemGroup> 

    <ItemGroup> 
    <EmbeddedResource Update="Properties\MyWords.resx"> 
     <Generator>ResXFileCodeGenerator</Generator> 
     <LastGenOutput>MyWords.Designer.cs</LastGenOutput> 
    </EmbeddedResource> 
    </ItemGroup> 


</Project> 

但是我寧願以這種方式處理正常的cs文件的處理方式。該項目爲空,並搜索文件系統。什麼是globby的方式來實現上述,所以當我添加新文件時,他們並沒有最終明確聲明。

我第一次嘗試是

<ItemGroup> 
    <Compile Update="Properties\**\*.designer.cs"> 
     <DesignTime>True</DesignTime> 
     <AutoGen>True</AutoGen> 
     <DependentUpon>Properties\%(Filename).resx</DependentUpon> 
    </Compile> 
    </ItemGroup> 

    <ItemGroup> 
    <EmbeddedResource Update="Properties\**\*.resx"> 
     <Generator>ResXFileCodeGenerator</Generator> 

    </EmbeddedResource> 
    </ItemGroup> 

但是這不會起作用,因爲

Properties\%(Filename).resx 

擴展到

Properties\Foo.designer.resx 

,而不是

Properties\Foo.resx 

回答

0

您可以在元數據使用屬性功能,以便與擦除與string.replace的.Designer部分應確定:

<Compile Update="Properties\**\*.designer.cs"> 
    <DesignTime>True</DesignTime> 
    <AutoGen>True</AutoGen> 
    <DependentUpon>Properties\$([System.String]::Copy('%(FileName)').Replace('.Designer', '')).resx</DependentUpon> 
</Compile>