我試圖在VS2015中創建新的資源文件。我創建了它們,但是當我嘗試更改「訪問修飾符」時,下拉框被禁用...Visual Studio 2015,無法更改新資源文件的訪問修飾符
任何想法?
我正在ASP.NET MVC 6(ASP.NET5)中工作。該項目是一個類庫,但我已經在Web Project中進行過測試,結果相同。
謝謝!
我試圖在VS2015中創建新的資源文件。我創建了它們,但是當我嘗試更改「訪問修飾符」時,下拉框被禁用...Visual Studio 2015,無法更改新資源文件的訪問修飾符
任何想法?
我正在ASP.NET MVC 6(ASP.NET5)中工作。該項目是一個類庫,但我已經在Web Project中進行過測試,結果相同。
謝謝!
您可以檢查文件的屬性和驗證,如果自定義工具是ResXFileCodeGenerator?如果是GlobalResourceProxyGenerator,則下拉菜單將被禁用。
嗨!我沒有這些屬性... – chemitaxis
直接進入解決方案資源管理器,然後右鍵單擊您的文件以獲取屬性。如果你只是打開窗口屬性它不會顯示任何內容:(CustomTool是在「高級」類別,只是在複製到輸出目錄 – arya404
嗨@ arya404我已經更新了我的問題......就像你看到的,我不'沒有選擇可以改變任何東西......我已經用一個乾淨的新項目進行了測試,結果相同... – chemitaxis
我有同樣的問題,但我發現這個簡單的解決方案Visual Studio's Access Modifier drop down option is disabled for resource file
總結:
- 右鍵單擊您的文件資源,選擇屬性(Alt + Enter鍵)
- 改變構建對嵌入式資源的行動
- 將自定義工具更改爲PublicResXFileCodeGenerator
A)在Asp.net核心項目
這個問題在Asp.net Core
項目known bug和訪問修飾符是public
默認和你不能改變它。它將通過asp解決。網核心團隊接下來的更新但如果你需要internal
訪問修飾符,你可以使用我的臨時解決方案:
Resource.resx
和添加您的所有項目保存它Resource.resx
樹和開放Resource.Designer.cs
public
個字符串它internal
和保存它注:每次保存
Resource.resx
文件,你應該再做一次第3步。
最後,你應該有一個Resource.Designer.cs
文件,訪問修飾符是這樣的:
同時檢查namespace
在Resource.Designer.cs
文件。它應該是一個合適的namespace
。與您的項目同步namespace
。
B)在普通Asp.net項目
如果你在
Properties panel
不CustomTool
財產您的資源(.resx
)文件將其更改爲PublicResXFileCodeGenerator
並解決問題Then您應該手動更改項目中的一些設置(
.csproj
)文件。就是這麼簡單,只要按照我的指示:
solution explorer
右鍵點擊你的項目並選擇卸載項目.csproj
文件中,找到的.resx
字符串,您會在那裏看到一個設置塊。這就像下面的代碼。PublicResXFileCodeGenerator
):。
<EmbeddedResource Include="MyResourceFile.resx">
<SubType>Designer</SubType>
<Generator>PublicResXFileCodeGenerator</Generator> <!--important line-->
<LastGenOutput>MyResourceFile.Designer.cs</LastGenOutput>
</EmbeddedResource>
.csproj
文件solution explorer
並選擇刷新項目.resx
文件並享受;)注:,而不是使用
MyResourceFile
打開的設計文件(Resource.Designer.resx)在記事本++資源文件名和改變內部/ private修飾符(所有屬性,構造函數和類)。 – Ricardo
@chemitaxis,按照[我的答案]中的說明(http://stackoverflow.com/questions/34314146/visual-studio-2015-cant-change-access-modifier-of-new-resources-files/39441597#39441597 ) – RAM