我正在尝试使用Visual Studio 2013中的启动外部程序来调试程序.所有项目文件都是.NET 3.5.作为旁注:我已经调试了这样,因为我更新到VS2013(大约两周),但今天它突然停止工作.
当我运行程序时,它启动,但Debug-> Windows-> Modules窗口为空.
当我启动程序并附加Visual Studio以使用Managed(v3.5,v3.0,v2.0)代码进行处理时,所有内容都可以顺利加载,我可以进行调试.但是当我选择托管(v4.5,v4.0)代码时,我得到与上面相同的空白模块窗口,没有活动断点.
可能是启动外部程序使用托管(v4.5,v4.0)代码而不是托管(v3.5,v3.0,v2.0)代码?有没有办法控制Visual Studio在使用启动外部程序时使用的调试器?
我已经仔细检查过,所有使用debug-configuration构建的项目都设置为.NET 3.5,因为我首先想到的是其中一个项目可能构建在更高版本中.一个项目是.NET4.0,但未设置为在我的配置中构建.
我使用Saxon 9.4家庭版(Saxon-HE 9.4 .NET)来支持XSLT 2.0和XPath 2.0以及.NET中的XQuery 1.0.当我加载没有URI的文件时,我的代码崩溃了.
任何其他解决方案也将受到赞赏,我唯一的术语是必须从dll文件中加载文件.
只要我从文件加载xml/xsl,我的代码就可以正常工作:
const string sourcePath = @"C:\test\TestInvoiceWithError.xml";
const string xsltpath = @"C:\test\UBL-T10-BiiRules.xsl";
Run Code Online (Sandbox Code Playgroud)
当我尝试从嵌入式资源加载时,代码抛出一个异常,指出"没有提供基本URI":
Stream sourceStream = GetEmbeddedResource("TestProject1.testfiles.TestInvoice.xml");
Stream xsltStream = GetEmbeddedResource("TestProject1.testfiles.UBL-T10-BiiRules.xsl");
Run Code Online (Sandbox Code Playgroud)
我还为具有相对路径的资源创建了Uri,这会引发异常"相对URI不支持此操作".:
Uri sourceUri = new Uri("/TestProject1;component/testfiles/TestInvoice.xml", UriKind.Relative);
Uri xsltUri = new Uri("/TestProject1;component/testfiles/UBL-T10-BiiRules.xsl.xml", UriKind.Relative);
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Text;
using System.Xml;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Saxon.Api;
namespace TestProject1
{
[TestClass]
public class XsltTest
{
[TestMethod]
public void SaxonTest()
{
Stream …Run Code Online (Sandbox Code Playgroud) 我有一个包含三列的SQL表:Id,English和Norwegian.Id是主键.在我的应用程序中,我有一个标志(EN/NO)来决定用于标签的哪种语言,GUI中的按钮++.应用程序每次加载时都会执行select*,应用程序在运行时查找所有必需的值.但是我没有为每个实例加载整个数据集,而是想导出这些值并创建一个dll,这样我就可以在本地存储这些值.
是否有可能创建这个in-code,因此dll会在每次构建时自行更新?或者我必须运行一些外部程序来动态创建ex.一个.cs代码复制/粘贴到我的班级?(我需要能够重新运行该过程,因为每次需要新标签/文本时都会添加行)
到目前为止,我已经考虑过如何构建导出的三个解决方案,但是没有关于如何导出数据的线索:
在静态上下文中保留DataTable的状态,并提供帮助方法来标准化获取值的方式.
创建一个包含每个唯一ID作为method-name的类,以及一个用于决定返回哪个值的参数:
public static class Names
{
public static string 12345(string language)
{
switch (language)
{
case "EN":
return "Hello";
case "NO":
return "Hei";
default:
return "Hello";
}
}
}
Run Code Online (Sandbox Code Playgroud)为ID为键的每种语言创建一个包含可搜索列表的类,并将值(作为值)