我想在配置文件中存储API密钥而不将其检入源代码控制,并在我的UWP应用程序中读取数据.
一个常见的解决方案是将密钥存储在.config文件(例如app.config或web.config)中,并像这样访问它:
var apiKey = ConfigurationManager.AppSettings.Get("apiKey");
Run Code Online (Sandbox Code Playgroud)
我正在使用通用Windows(UWP)应用程序,无法访问持有的System.Configuration命名空间ConfigurationManager.
如何在UWP应用程序中访问AppSettings?或者,在UWP应用程序中访问配置数据的最佳方法是什么?
我们正在使用Visual Studio 2012和TFS在团队中开发VSPackage.
扩展在用于创建它的计算机上正常工作(通过向导).在另一台计算机上,当我们尝试运行它时(使用F5),Visual Studio说"具有类库的输出类型的项目无法直接启动".
项目的输出确实是类库,在第一台机器上按F5启动Visual Studio的实验实例,扩展已加载并正常工作.
通过在第二台计算机上查看"%LOCALAPPDATA%\ Microsoft\VisualStudio\11.0Exp\Extensions",我们看到扩展已经构建,并且尝试向VS注册它.我们还在第二台计算机上创建了另一个扩展,并尝试在第一台计算机上运行它.它显示相同的错误.
我们如何才能在不习惯创建它的计算机上运行扩展?
c# vspackage visual-studio visual-studio-extensions visual-studio-2012
我正在开发一个项目,我使用Roslyn从一个解决方案编译项目.
foreach (var projectId in solution.GetProjectDependencyGraph().GetTopologicallySortedProjects())
{
var project = solution.GetProject(projectId);
var compilation = project.GetCompilationAsync().Result;
var errors = compilation.GetDiagnostics().Where(d => d.Severity == DiagnosticSeverity.Error);
// ...
Run Code Online (Sandbox Code Playgroud)
编译包含诸如的错误
错误CS0012:类型"任务"在未引用的程序集中定义.您必须添加对程序集'System.Threading.Tasks,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用.
为什么Roslyn不接受对mscorlib的现有引用?
有CompilationOptions什么我应该考虑的吗?根据这个线程,我试过,assemblyIdentityComparer: DesktopAssemblyIdentityComparer.Default但它没有帮助.我试图与之合作,metadataReferenceResolver但找不到有关它的更多信息.
在Roslyn中的解决方案之后没有引用System.Runtime我实现了代码,确保项目引用了mscorlib.dll,System.Core.dll,System.dll和System.Runtime.dll,这样我的项目和编译就有了参考文献:
附注:参考#7已添加此方式.该项目已经引用了#1,2和3,删除它们并替换为C:\ Windows\Microsoft.NET\Framework中的那些并没有解决问题.
project.MetadataReferences.ToList()
Count = 8
[0]: Assembly Path='C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll'
[1]: Assembly Path='C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll'
[2]: …Run Code Online (Sandbox Code Playgroud) 我在C#中使用Windows窗体.
我有一个主窗体,其中包含几个包含toolStripButtons的工具栏.使用包含数据的另一个表单后,主窗体失去焦点并单击toolStripButton不会触发OnClick事件:第一次单击激活主窗体,只有第二次单击实际按下按钮.我需要用户只按一次按钮才能触发Click事件,有关如何操作的任何想法?谢谢.
笔记:
我正在使用Azure功能与GitHub部署.我想将函数放在src/server/functionName/repo中,但只有直接放置函数时,部署才有效functionName/
如何部署放置在子目录中的函数?
该文档的状态
您的host.json文件和函数文件夹应该直接位于您部署的根目录.
但"应该"并不意味着"必须",对吗?
我尝试了什么:
host.json我设置routePrefix但它似乎只影响函数的URL:"http": { "routePrefix": "src/server" },我正在尝试使用Roslyn替换类的CompilationUnitSyntax.
然而,ReplaceNode,我使用了一个不同的签名比ReplaceNode Roslyn的常见问题,而且我已经看了任何的StackOverflow问题.任何人都可以指出这是为什么,我该如何使用ReplaceNode这需要老ClassDeclarationSyntax和新ClassDeclarationSyntax作为参数?
我正在看九月CTPFAQ¹,方法:
[FAQ(26)]
public void AddMethodToClass()
Run Code Online (Sandbox Code Playgroud)
特别是以下一行:
CompilationUnitSyntax newCompilationUnit =
compilationUnit.ReplaceNode(classDeclaration, newClassDeclaration);
Run Code Online (Sandbox Code Playgroud)
当我尝试构建此代码时,我收到一个错误,因为ReplaceNode需要不同的参数:
'Roslyn.Compilers.CSharp.CompilationUnitSyntax' does not contain a definition for 'ReplaceNode' and the best extension method overload
'Roslyn.Compilers.CSharp.SyntaxExtensions.ReplaceNode<TRoot>(TRoot,
Roslyn.Compilers.CSharp.SyntaxNode,
Roslyn.Compilers.SyntaxRemoveOptions,
System.Func<Roslyn.Compilers.CSharp.SyntaxNode,Roslyn.Compilers.CSharp.SyntaxTriviaList>,
System.Func<Roslyn.Compilers.CSharp.SyntaxNode,Roslyn.Compilers.CSharp.SyntaxTriviaList>)'
Run Code Online (Sandbox Code Playgroud)
¹我很确定我使用的是9月CTP:
我正在使用来自%userprofile%\ Documents\Microsoft Roslyn CTP的常见问题解答- 2012年9月\ CSharp\APISampleUnitTestsCS\FAQ.cs
NuGet说我的Roslyn软件包的版本是1.2.20906.2
今天我开发的VSPackage加载失败,Visual Studio提示我检查ActivityLog.xml。它还询问“继续显示此错误消息?” 我不小心按了否。
我所指的窗口与此类似:

如何恢复按“否”?
我在工具>选项中找不到任何开关。这似乎是一个很难在谷歌上搜索的词组。